package lz.controls.events
{

	import flash.events.Event;

	/**
	 * ComponentEvent 类定义与 UIComponent 类关联的事件。这些事件包括下列事件：
	 * ComponentEvent.BUTTON_DOWN：在按下按钮以后调度。
	 * ComponentEvent.ENTER：在按下 Enter 键以后调度。
	 * ComponentEvent.HIDE：在组件的 visible 属性设置为 false 以后调度。
	 * ComponentEvent.LABEL_CHANGE：在按下 Enter 键以后调度。
	 * ComponentEvent.MOVE：在更改标识组件位置的 x 或 y 属性以后调度。
	 * ComponentEvent.RESIZE：在调整组件大小以后调度。
	 * ComponentEvent.SHOW：在组件的 visible 属性设置为 true 以后调度。
	 */
	public class ComponentEvent extends Event
	{

		/**
		 * 定义 buttonDown 事件对象的 type 属性值。
		 */
		public static const BUTTON_DOWN:String="buttonDown";
		/**
		 * 定义 labelChange 事件对象的 type 属性值。
		 */
		public static const LABEL_CHANGE:String="labelChange";
		/**
		 * 定义 hide 事件对象的 type 属性值。
		 */
		public static const HIDE:String="hide";
		/**
		 * 定义 show 事件对象的 type 属性值。
		 */
		public static const SHOW:String="show";
		/**
		 *定义 resize 事件对象的 type 属性值。
		 */
		public static const RESIZE:String="resize";
		/**
		 * 定义 move 事件对象的 type 属性值。
		 */
		public static const MOVE:String="move";
		/**
		 *定义 enter 事件对象的 type 属性值。
		 */
		public static const ENTER:String="enter";
		/**
		 * 创建包含有关组件事件信息的新 ComponentEvent 对象。
		 */
		public function ComponentEvent(type:String, bubbles:Boolean=false, cancelable:Boolean=false)
		{
			super(type, bubbles, cancelable);
		}
		/**
		 *  返回一个字符串，其中包含 ComponentEvent 对象的所有属性。
		 */
		override public function toString():String
		{
			return formatToString("ComponentEvent", "type", "bubbles", "cancelable");
		}
		/**
		 * 创建 ComponentEvent 对象的副本，并设置每个参数的值以匹配原始参数值。
		 */
		override public function clone():Event
		{
			return new ComponentEvent(type, bubbles, cancelable);
		}
	}
}
